Generally, the speed of execution of interactive programs is largely limited by the rate at which a user inputs data and commands, and not by the execution of the commands by the system on which the software is running. At the user level, macro commands and scripts may be used to increase the speed of execution of tasks that involve many commands.
For large or frequently used command sequences, scripts may be used in conjunction with a scripting engine that interprets the script and controls the execution of a program. For example, a web browser may have a scripting engine using JAVASCRIPT or VBSCRIPT (JAVASCRIPT is a registered trademark of Sun Microsystems Inc. Palo Alto, Calif.). Scripting engines are usually associated with a particular language that is a programming language or a subset of a programming language.
One area in which scripts are particularly useful is in the testing of software programs. Thorough testing of a software program typically requires the repeated application of large sets of commands.
Although a script and scripting engine based upon a particular programming language may mesh well with a program that is written in the same programming language, the content of the script may be difficult to associate with the commands that a user would input to the program, such as menu selections made from a graphical user interface. In this case, the script writing requires a level of familiarity with the code underlying the graphical user interface. The user interface of a software application is usually tailored towards natural language. Commands such as “cut” and “paste” are descriptive of their actions even though the executable source code is not.
A markup language such as Extensible Markup Language (XML) is not a programming language per se, but combines text and information concerning the text in a document that may be used by another program. Markup languages are less abstract and bear a closer resemblance to natural language than programming languages, and thus have the potential to be more user friendly.